Today, computer users, and especially Internet users, are very familiar with performing searches to locate information on a particular topic which may be of interest to the individual performing the search. For example, at the time this application was drafted, performing a search on Google™ for the term “gardener” results in the identification of 12,500,000 websites which contain the term “gardener” in less than one quarter of a second. While the identification of 12,500,000 websites in less than a quarter second is impressive, it does not help the individual locate the handful of websites which would be of most interest to the searcher. The top search results currently show a Wikipedia article defining a gardener, some articles on professional gardener's guides, some news articles containing the word gardener and some sponsored links from companies who either directly offer that service or from an intermediate directory service through which you can locate gardeners. Rather, the searcher is faced with the daunting task of wading through the 12,500,000 resulting websites in an effort to identify the websites most relevant to the searcher's interests. Narrowing the search term would seem an obvious way to resolve the unwieldy number of “hits,” performing a search on the term “gardeners in Edinburgh” results in the identification of 1,150,000 websites. Alternatively, searching the Internet for the terms “gardeners in Edinburgh special offer for today” results in the identification of 1,370,000 results. Given the amount of information available on the Internet today, it is difficult, if not impossible, to efficiently identify the most relevant information on a given topic. As search engines are used to help perform searches of any arbitrary topic, such search engines give higher promotion of heavily linked-to websites in natural search results compared to those of fewer links as one way to determine quality and relevance of results. This results in websites of global significance (such as encyclopedia entries) “drowning out” the visibility of the websites of local small business providers.
Sponsored links improve the quality of the search in this instance (where a searcher is looking for a service), by reserving an area in the results for items relating only to service providers. However the downside is that these sponsored links typically apply to the scale of an entire country so companies who can afford to advertise to that size of the market dominate these results.
For the searcher, the latest web search engines are now able to prioritize results from service providers that are in a similar location to the end-user. This improves the experience for the searcher, but still requires the service provider to pay for exposure to people whom he/she may be unlikely to serve (either based on geographic distance, or merely because the service, provider is really only affordable by those from more well-off areas with higher disposable incomes within a given city) since they can still appear in search results for searchers that are far away from the specific areas the service provider is able to serve on any given specific days due to the service providers location for the days. Since cost is based on exposure, false hits by irrelevant searchers may quickly eat up the maximum page views that smaller companies can afford, thus making them disappear from results, which again leads to the searcher's results being dominated by the larger businesses or irrelevant information.
On the other hand, where the searcher is able to perform a restriction of results by distance, this unfairly penalizes online businesses, for example, who may be located a far distance away but can equally provide the searcher with desired products or services through theft extensive distribution channels on the ground.
Furthermore, searches performed on search engines such as Google™ can be considered “one-way data filters” or “searches,” meaning that the information desired is filtered (narrowed, or searched) from a single direction, typically from the searcher's (or the “information consumer's”) perspective.
Other applications, such as computer dating programs, may implement a one-way data filter, or a specific form of two-way data filter. For example, a computer dating program which implements a one-way data filter may require its members to provide profile information on themselves in order to create a database of its members. This profile information may include, name, address, picture, gender, age, likes, dislikes, interests in having children, religious affiliations, and similar information. If the computer dating program uses a one-way data filter, its members may be permitted to search the database for individuals who meet the criteria the searching member specified, but the criteria of the non-searching member would be ignored. Conversely, if the computer data program used a two-way data filter, the criteria indicated by both the searching member and the non-searching member would be considered. One-way data filters and two-way data filters are briefly described in U.S. Patent Publication No. US 2008/0010598 published on Jan. 10, 2008.
For example, suppose Mike, is a member of a dating service and wishes to use its computer dating program to meet women with similar interests to his. Mike is a 24 year old man who lives in Washington, D.C., and enjoys rock climbing, hiking, fishing, snow skiing and visiting museums. He is interested in meeting women between the ages of 20 and 25 that live in the Washington, D.C. area who also enjoy hiking or snow skiing. Suppose further, that during the same timeframe, both Pam and Mary, are members of the same dating service and wish to use its computer dating program to meet men with similar interests to theirs. Pam is a 25 year old woman who lives in Alexandria, Va., and enjoys hiking, dining out, and parachuting. Pam is interested in meeting men between the ages of 20 and 30 that live in the Washington, D.C. area who enjoy hiking or dining out. Mary is a 24 year old women who lives in Washington D.C. and enjoys snow skiing. However, Mary is only interested in meeting men between the ages of 27 and 35. If the computer dating program utilized a one-way data filter, Mike could use the program to identify women that meet only his desired criteria. If Mike used a one-way data filter to search the database for women between the ages of 20 and 25 that live in the Washington D.C. area who also enjoy hiking or snow skiing, the resulting list would include the names of both Pam and Mary, even though Mike does not meet the criteria specified by Mary.
However, if the computer dating program used a “two-way data filter” it would consider the criteria expressed by both the searcher (again Mike) and the women included in the database. If the computer dating program utilized a two-way data filter, Mike could use the program to identify women that meet his desired criteria and the resulting list would only include the women for which Mike also met the women's desired criteria. If Mike used a two-way data filter to search the database for women between the ages of 20 and 25 that live in the Washington D.C. area who also enjoy hiking or snow skiing, the resulting list would include Pam's name, but not Mary's name. Pam's name would be included because Mike meets the criteria specified by Pam, i.e., men between the ages of 20 and 30 that live in the Washington, D.C. area who enjoy hiking or dining out. Mary's name would not be included because Mike does not meet the criteria specified by Mary (i.e., Mike is 24, and Mary desires to meet men only between the ages of 27 and 35).
Such two way filters attempt to match together two instances of the same type of record (a personal profile). In such cases, a simple key lookup (i.e., comparing the corresponding field or fields in two entries) and field matching is performed, which is the common method used in database queries to perform such forms of 2-way data filtering.